home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Tools / Dev / powerd / lib / powerd_lib.lha / PowerD / DupEStr.ass < prev    next >
Encoding:
Text File  |  2000-02-20  |  484 b   |  26 lines

  1. ; a0 - source estring
  2.  
  3.     xdef    _DupEStr
  4.  
  5. _DupEStr    movem.l    d1-d3/a0-a2/a6,-(a7)
  6.     move.l    a0,d3
  7.     moveq    #0,d2
  8.     move.w    (-2,a0),d2
  9.     move.l    d2,d0
  10.     addq.l    #6,d0        ; add header and zero byte
  11.     move.l    #$50000,d1    ; MEMF_CLEAR|MEMF_REVERSE
  12.     movea.l    $4.w,a6
  13.     jsr    (-198,a6)        ; AllocMem
  14.     tst.l    d0
  15.     beq.s    .finish
  16.     addq.l    #4,d0        ; shift by header
  17.     movea.l    d0,a0
  18.     movea.l    a0,a1
  19.     movea.l    d3,a2
  20. .loop    move.b    (a2)+,(a1)+
  21.     bne.s    .loop
  22.     suba.l    a0,a1
  23.     move.w    a1,(-4,a0)
  24. .finish    movem.l    (a7)+,d1-d3/a0-a2/a6
  25.     rts
  26.